package com.gec.service.abst;

import com.gec.domain.PageBean;
import com.gec.domain.PageParam;
import com.gec.domain.Reim;

import java.util.Map;

/*
 *  Type: Interface
 *  Author: DawnFz.com
 *  Date: 2022/10/26 9:32
 *  Project: HotelSSM
 *  Version: 1.0
 *  Describe: [ReimService接口]
 */
public interface ReimService
{

    String getHigherDeptLeader(String deptId);
    String getHigherDeptBoss(String deptId);

    String getDeptLeader(String deptId);
    String getDeptBoss(String deptId);

    int updateAssigneeAndTask(String insId, String taskId, String assignee);

    void startProcess(Reim reim);

    PageBean<Reim> queryInitiate(PageParam param, String initiator);

    PageBean<Reim> queryWaitMyApprove(PageParam param, String assigneeId);

    PageBean<Reim> queryMyApproved(PageParam param, String assigneeId);

    Reim queryMyTaskByTaskId(String taskId);

    void updateStatusByInstance(String processInstanceId, String status);

    void clearTaskAndAssignee(String processInstanceId);

    void completeMyApprove(Map<String, Object> map);

    void cancelMyTaskByProcessInstanceId(String instanceId);

    PageBean<Reim> queryHistoryApproved(PageParam param, String assignee);

    int addRecordToHistoricReim(String processInstanceId, String assignee);


    String getUserIdByDeptId(String deptId);
}
